package com.maimao.core.model.charts;

import cn.hutool.core.util.ObjectUtil;
import com.maimao.core.utils.DateUtils;
import lombok.Getter;

import java.time.LocalDateTime;

/**
 * 订单饼状图时间聚合类型
 *
 * @author MaoLin Wang
 * @date 2021/3/30 2:29 下午
 */
@Getter
public enum OrderAggTimeType {
    /**
     * 当月
     */
    CURRENT_MONTH(1, DateUtils.firstDayOfMonth()),
    /**
     * 三月内
     */
    PRE_THREE_MONTH(2, DateUtils.now().plusMonths(-3)),

    /**
     * 半年内  去年  累计
     */

    HALF_YEAR(3, DateUtils.now().plusMonths(-6)),

    /**
     * 一年内
     */
    ONE_YEAR(4, DateUtils.now().plusMonths(-12)),

    /**
     * 累计
     */
    ALL(5, null),
    ;

    private final Integer code;
    private final LocalDateTime from;

    OrderAggTimeType(Integer code, LocalDateTime from) {
        this.code = code;
        this.from = from;
    }


    public static LocalDateTime getValueByCode(Integer code) {
        if (code == null) {
            return null;
        }
        for (OrderAggTimeType aggTimeType : values()) {
            if (ObjectUtil.equal(aggTimeType.getCode(), code)) {
                return aggTimeType.getFrom();
            }
        }
        return null;
    }
}
